package negocio;

import java.sql.Date;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;




@Entity
public class Cotizacion
{
	@Id
	private int nroCotizacion;
	private Date fechaEmision;
	private Date validoHasta;
	private float descuentoVip;
	private String observaciones;

	@ManyToOne
	@JoinColumn(name="Cliente", referencedColumnName="cuit")
	private Cliente cliente;
	private int estado;
	
	@ManyToMany(cascade = CascadeType.PERSIST)
	 @JoinTable(name="ItemCotizacion",
	   joinColumns=@JoinColumn(name="nroCotizacion"),
	   inverseJoinColumns=@JoinColumn(name="codigo_rodamiento"))
	private List<Rodamiento> rodamientos;
	
	
	@ManyToMany(cascade = CascadeType.PERSIST)
	@JoinTable(name="Politica_Cotizacion",joinColumns=@JoinColumn(name="nroCotizacion"),inverseJoinColumns=@JoinColumn(name="idPolitica"))
	private List<PoliticaBeneficio> politicas;
	
	@ManyToOne
	@JoinColumn(name="CondicionDePago", referencedColumnName="idCondPago")
	private CondicionDePago condicionesPago;
	
	
	
	public int getNroCotizacion() {
		return nroCotizacion;
	}

	public void setNroCotizacion(int nroCotizacion) {
		this.nroCotizacion = nroCotizacion;
	}

	public Date getFechaEmision() {
		return fechaEmision;
	}

	public void setFechaEmision(Date fechaEmision) {
		this.fechaEmision = fechaEmision;
	}

	public Date getValidoHasta() {
		return validoHasta;
	}

	public void setValidoHasta(Date validoHasta) {
		this.validoHasta = validoHasta;
	}

	public float getDescuentoVip() {
		return descuentoVip;
	}

	public void setDescuentoVip(float descuentoVip) {
		this.descuentoVip = descuentoVip;
	}

	public String getObservaciones() {
		return observaciones;
	}

	public void setObservaciones(String observaciones) {
		this.observaciones = observaciones;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	public int getEstado() {
		return estado;
	}

	public void setEstado(int estado) {
		this.estado = estado;
	}

/*	public List<ItemCotizacion> getItems() {
		return items;
	}

	public void setItems(List<ItemCotizacion> items) {
		this.items = items;
	}*/

	public CondicionDePago getCondicionesPago() {
		return condicionesPago;
	}

	public void setCondicionesPago(CondicionDePago condicionesPago) {
		this.condicionesPago = condicionesPago;
	}

	public List<PoliticaBeneficio> getPoliticas() {
		return politicas;
	}

	public void setPoliticas(List<PoliticaBeneficio> politicas)
	{
	
	}
	
	public void agregarItem(Rodamiento r, int cant)
	{
	
	}
	
	public void setBeneficios()
	{
	
	}
	
	public float calcularTotal()
	{
		return 0;
	
	}

	public void setRodamientos(List<Rodamiento> rodamientos) {
		this.rodamientos = rodamientos;
	}

	public List<Rodamiento> getRodamientos() {
		return rodamientos;
	}
}
